Memory controllers manage flow of data going to and from main memory of computing systems. Memory controllers can also be separate processors or integrated into other processors, such as, for example, on a silicon die of a microprocessor of the computing system. However, main memory, being constructed at smaller scales and higher densities than standard gates, can be vulnerable to errors developed in the data that is managed by the memory controllers.
For instance, errors in main memory can be due to variations in the physical structure of the semiconductors from which the memory is constructed, or for example, due to an external influence such as temperature variation or incident ionizing radiation. In addition, due to the vulnerability of errors in the memory, error correcting codes (ECC) can be stored in conjunction with stored data values of data managed by the memory controllers, hence, providing a level of redundancy which allows isolated errors in the memory data to be corrected. Moreover, computing systems platforms, including, for example, IBM® Power Systems® (IBM and power systems are trademarks of the International Business Machines in the United States other countries or both) architectures can proactively attempt to address memory errors by utilizing memory scrubbing operations. Memory scrubbing involves reading of contents of the memory through ECC logic, and correcting any errors of the memory controllers that have been accumulated in the computing system. Correctable errors are usually single-bit or double-bit errors within a cacheline but some ECC codes allow for up to 8 bits in error within a single byte.